【深度学习】卷积神经网络中Dropout、BatchNorm的位置选择 您所在的位置:网站首页 bn 过拟合 【深度学习】卷积神经网络中Dropout、BatchNorm的位置选择

【深度学习】卷积神经网络中Dropout、BatchNorm的位置选择

2023-09-03 06:41| 来源: 网络整理| 查看: 265

前言

卷积神经网络的设计自然要考虑到各层之间的顺序。这种“考虑”既有原理性的解释也有经验方面的原因。本文主要介绍一些层常见的位置选择,并对其原因进行分析,从中提取共性有利于其他模型的设计。

Dropout层的位置

Dropout一般放在全连接层防止过拟合,提高模型返回能力,由于卷积层参数较少,很少有放在卷积层后面的情况,卷积层一般使用batch norm。 全连接层中一般放在激活函数层之后,有的帖子说一定放在激活函数后,个人推测是因为对于部分激活函数输入为0输出不一定为0,可能会起不到效果,不过对于relu输入0输出也是0就无所谓了。

BatchNorm

BatchNorm归一化放在激活层前后好像都有,最初LeNet有一种归一化放在了激活层池化层后面,而现在普遍放在激活层前。 bn原文建议放在ReLU前,因为ReLU的激活函数输出非负,不能近似为高斯分布。但有人做了实验,发现影响不大,放在后面好像还好了一点,放在ReLU后相当于直接对每层的输入进行归一化,如下图所示,这与浅层模型的Standardization是一致的。 所以在激活层前还是后还是很难下定论的,只是现在习惯放在激活层前,区别不是很大,区别大的是是否使用bn。 这里做了很多实验,可以参考:https://github.com/ducha-aiki/caffenet-benchmark/blob/master/batchnorm.md

参考资料

https://www.cnblogs.com/shine-lee/p/11989612.html#bn%E5%B1%82%E6%94%BE%E5%9C%A8relu%E5%89%8D%E9%9D%A2%E8%BF%98%E6%98%AF%E5%90%8E%E9%9D%A2%EF%BC%9F



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有